package com.dxf.chepter10

import java.text.SimpleDateFormat
import java.util.Date

/**
 * Scala 运行在java虚拟机上,特点:
 *  1 轻松实现和丰富的java类库互联互通
 *  2 支持面向对象和函数式编程
 *  3 它写出的程序像动态语言一样简洁
 *  4 简洁,高效,令人愉快
 *
 *  编程范式 :
 *   1 所有编程范式中,面向对象编程是最大赢家
 *   2 其实面向对象编程不是一种严格意义上的范式编程,严格意义上编程范式为 : 命令式编程,函数式编程,逻辑式编程,面向对象是上述交叉产物
 *   3 在传统语言设计中,只有命令式编程得到强调,递归很少出现
 *
 *   ===============================
 *
 */
object T135_使用递归方式编程_求最大值 {

  def main(args: Array[String]): Unit = {

    val i: Int = myMax(List(1, 2, 3, 6, 3))
    println(i)


    println(List(1, 2, 3, 6, 3).max)
  }


  def myMax(xs: List[Int]): Int = {
    if (xs.isEmpty) throw new NoSuchElementException
    if (xs.size == 1) xs.head
      //递归是告诉计算机做什么,而不是怎么做
    else if (xs.head > myMax(xs.tail)) xs.head else myMax(xs.tail)


  }


}
